package com.aries.common.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * 自定义注解防止表单重复提交
 *
 * @author aries
 */
@Inherited
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RepeatSubmit {
    /**
     * 间隔时间(ms)，小于此时间视为重复提交
     * (这个默认值最好不要修改,否则会出现问题,当你的默认值大于配置文件中的值的情况下,会导致优先使用注解默认值)
     * 之所以使用-1是因为要来做判断,当不自定义的时候则使用的是配置文件中的值这里可以看
     * com.aries.framework.aspectj类中的doBefore这个方法
     */
    int interval() default -1;

    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

    /**
     * 提示消息
     */
    String message() default "不允许重复提交，请稍候再试";
}
